Virtual Analog Synthesizer with Stereo Chorus ( VA1 V0.32 )

MIDI channel :
channel = 1 + dipswitch( 1 + 2 + 4 + 8 )

OVERVIEW


Filter,LFO,ADSR,Chorus : everything runs at audio rate 44K1Hz

Oscillator is selectable between 2 generated waveforms.
More partials give a sharper edge to your saw or square wave.
For lower played melodies you can use more partials in  your audio waveform without aliasing.
For higher melodies when you hear aliasing you should use less partials in your waveform.
The waveforms are a number of sine waves together, you can go from 1 ( soft sine wave ) to 254.

LFOs has a sine waveform, the generated oscillator waveforms are also selectable.
Filter LFO controls are guaranteed to match your tempo or to improve control tweakability.
Filter LFO has a wide range from almost stopped to fast, all under 1 control.

It is possible to select a function for the modulation wheel for the most common controls.

Sample & hold as random source for noises.


SPECEFICATIONS


Oscillator (1) : Saw , Square
Filter (1) : 36db LowPass, 24db LowPass, 12db LowPass, 24db HighPass, 12db HighPass, 12db BandPass
LFO (2) : Pitch , Filter
ADSR (2) : Filter , Amplifier
Pitch bend : bender 1 to 12 notes, or assigned to selected ADSR for 1 or 2 oktaves
Stereo Chorus (1) : one third out of phase stereo


MIDI CONTROL CHANGE


Control Controls

CC  1 : Uses selected wheel function control
CC 37 : Wheel function   
        
        cutoff 1
        resonance
        filter envelop depth
        filter LFO depth
        filter LFO frequency
        filter attack
        filter decay
        filter sustain
        filter release
        amplifier attack
        amplifier decay
        amplifier sustain
        amplifier release
        pitch envelop depth
        modulation frequency
        modulation [ default ]


Oscillator Controls :

CC  5 : Slide time ( slide when key is pressed ) [ default = 73 ]
CC 38 : Sets center frequency ( 432Hz , 440Hz ) [ default = 440Hz ]
CC 39 : Retrigger oscillator ( *see note 1 ) ( 0..63 = false , 64..127 = true ) [ default = false ]
CC 40 : Waveform ( 0..63 = square , 64..127 = saw ) [ default = saw ]
CC 41 : Extra saw partials ( does not generate anything : used by Saw partials to create 8 bit value )  [ default = 1 ]
CC 42 : Saw partials ( *see note 2 ) [ default = 127 ]
CC 43 : Extra square partials ( does not generate anything : used by Square partials to create 8 bit value ) [ default = 1 ]
CC 44 : Square partials ( *see note 2 ) [ default = 127 ]


Filter Controls :

CC 45 : Filter type ( LP36 , LP24 , LP12 , HP12 , HP24 , BP12 ) [ default = LP36 ]
CC 46 : Cutoff 1 : Cutoff frequency ( forms 8 bit cutoff with cutoff 2 ) [ default = 127 ]
CC 47 : Cutoff 2 : Cutoff frequency ( forms 8 bit cutoff with cutoff 1 ) [ default = 64 ]
CC 48 : Resonance [ default = 127 ]
CC 49 : Filter envelop depth [ default = 64 ]
CC 50 : Key follow [ default = 0 ]
CC 51 : Key follow bias [ default = 64 ]


Filter LFO Controls :

CC 52 : Depth [ default = 0 ]
CC 53 : Floor ( *see note 3 )
CC 54 : Multiply ( *see note 3 )
CC 55 : Frequency ( *see note 3 )
CC 56 : Waveform ( square , saw , sinus )
CC 57 : Start phase
CC 58 : Retrigger every note ( 0..63 = false , 64..127 = true )
CC 59 : Retrigger now
CC 60 : Retrigger on next note


Filter ADSR Controls :

CC 61 : Reset ( 0..63 = false , 64..127 = true ) [ default = false ]
CC 62 : Attack [ default = 0 ]
CC 63 : Decay [ default = 0 ]
CC 64 : Sustain [ default = 127 ]
CC 65 : Release [ default = 0 ]


Amplifier ADSR Controls :

CC 66 : Reset ( 0..63 = false , 64..127 = true ) [ default = false ]
CC 67 : Attack [ default = 1 ]
CC 68 : Decay [ default = 0 ]
CC 69 : Sustain [ default = 0 ]
CC 70 : Release [ default = 0 ]
CC 71 : Velocity [ default = 0 ]


Pitch Bend Controls :

CC 72 : Pitch type

        bender [ default ] ( *see note 4 )
        filterenv 1 oktave
        filterenv 1 oktave invert
        filterenv 2 oktave
        filterenv 2 oktave invert
        ampenv 1 oktave
        ampenv 1 oktave invert
        ampenv 2 oktave
        ampenv 2 oktave invert
        filterenv 1 oktave + ampenv 1 oktave
        filterenv 1 oktave + ampenv 1 oktave invert
        filterenv 1 oktave invert + ampenv 1 oktave
        filterenv 1 oktave invert + ampenv 1 oktave invert
        ampenv 1 oktave + filterenv 1 oktave
        ampenv 1 oktave + filterenv 1 oktave invert
        ampenv 1 oktave invert + filterenv 1 oktave
        ampenv 1 oktave invert + filterenv 1 oktave invert
        filterLFO
        filterLFO invert
        filterLFO saw
        filterLFO ramp
        filterLFO saw 2x frequency
        filterLFO ramp 2x frequency
        filterLFO saw 4x frequency
        filterLFO ramp 4x frequency
        filterLFO saw 8x frequency
        filterLFO ramp 8x frequency
        filterLFO saw 16x frequency
        filterLFO ramp 16x frequency
        pitchLFO saw
        pitchLFO ramp
        pitchLFO saw 2x frequency
        pitchLFO ramp 2x frequency
        pitchLFO saw 4x frequency
        pitchLFO ramp 4x frequency
        pitchLFO saw 8x frequency
        pitchLFO ramp 8x frequency
        pitchLFO saw 16x frequency
        pitchLFO ramp 16x frequency
        filterLFO square
        filterLFO square invert
        filterLFO square 2x frequency
        filterLFO square invert 2x frequency
        filterLFO square 4x frequency
        filterLFO square invert 4x frequency
        filterLFO square 8x frequency
        filterLFO square invert 8x frequency
        filterLFO square 16x frequency
        filterLFO square invert 16x frequency
        pitchLFO square
        pitchLFO square invert
        pitchLFO square 2x frequency
        pitchLFO square invert 2x frequency
        pitchLFO square 4x frequency
        pitchLFO square invert 4x frequency
        pitchLFO square 8x frequency
        pitchLFO square invert 8x frequency
        pitchLFO square 16x frequency
        pitchLFO square invert 16x frequency
        filterLFO sample & hold
        filterLFO sample & hold 2x frequency
        filterLFO sample & hold 4x frequency
        filterLFO sample & hold 8x frequency
        filterLFO sample & hold 16x frequency
        pitchLFO sample & hold
        pitchLFO sample & hold 2x frequency
        pitchLFO sample & hold 4x frequency
        pitchLFO sample & hold 8x frequency
        pitchLFO sample & hold 16x frequency
        oscillator sample & hold
        oscillator sample & hold 2x frequency
        oscillator sample & hold 4x frequency
        oscillator sample & hold 8x frequency
        oscillator sample & hold 16x frequency
        bend off ( *see note 5 )

CC 73 : Pitch bender range [ default = 12 notes ]
CC 74 : Pitch envelop depth [ default = 127 ]


Pitch LFO Controls :

CC 75 : Sets modulation ( range adjust with pitch lfo range ) [ default = 0 ]
CC 76 : Range ( up to 1 oktave ) [ default = 32 ]
CC 77 : Frequency [ default = 64 ]
CC 78 : Waveform ( square , saw , sinus ) [ default = sinus ]
CC 79 : Start phase [ default = 0 ]
CC 80 : Retrigger every note ( 0..63 = false , 64..127 = true ) [ default = true ]
CC 81 : Retrigger now
CC 82 : Fade delay [ default = 24 ]
CC 83 : Fade [ default = 32 ]


Chorus Controls :

CC 84 : Depth [ default = 32 ]
CC 85 : Frequency [ default = 32 ]
CC 86 : Distance ( *see note 6 ) [ default = 0 ]



*Note 1 :
In combination with pitch type sample & hold you can make predictable random values and noises.

*Note 2 :
This control makes the synthesizer stop receiving midi controls until a new waveform is build in memory,
dont use a knob for this function, this function takes a while to process.
This is not a sine wave synthsizer, when selecting a low partials waveform you will hear chorus noise.

*Note 3 :
The filter LFO frequency is build on 3 control values.
Set the floor to adjust the lowest point of the frequency control.
Multiply sets a maximum for the frequency control.
Only the frequency control changes the sound.

*Note 4 :
When not using pitchtype bender the pitchbender will be routed to cutoff 2.

*Note 5 :
It is advised if you dont use pitch bend, to set pitchtype to bend off, to give the processor better reaction times in some cases.

*Note 6 :
When cancellation occurs, you can tune the chorus distance to avoid cancelation,
especially with oscillator square waveform there will be cancelation, the chorus might make pulse width modulation like sounds.

*Note 7 :
Control change numbers may differ in future updates.

If you like this synthesizer please make a HQ demo online ( VA1 quality control )
(c)copyright , right to copy not to sell